flowbox: Add gtk_flow_box_remove
authorMatthias Clasen <mclasen@redhat.com>
Fri, 8 May 2020 00:24:05 +0000 (20:24 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 12 May 2020 02:21:39 +0000 (22:21 -0400)
This is the replacement for gtk_container_remove.

docs/reference/gtk/gtk4-sections.txt
gtk/gtkflowbox.c
gtk/gtkflowbox.h

index 95553a798869c1de1675621038979ec26de14ce8..22d212a8873ba4492c71c96882fa4020f2106932 100644 (file)
@@ -5712,6 +5712,7 @@ gtk_revealer_get_type
 GtkFlowBox
 gtk_flow_box_new
 gtk_flow_box_insert
+gtk_flow_box_remove
 gtk_flow_box_get_child_at_index
 gtk_flow_box_get_child_at_pos
 gtk_flow_box_set_hadjustment
index 36d534f45955c2377ff06da2bc4ee1ab3beab84c..b8ff3dd63717db6829f936baca27f3301a190c93 100644 (file)
@@ -2986,16 +2986,27 @@ gtk_flow_box_add (GtkContainer *container,
   gtk_flow_box_insert (GTK_FLOW_BOX (container), child, -1);
 }
 
-static void
-gtk_flow_box_remove (GtkContainer *container,
-                     GtkWidget    *widget)
+/**
+ * gtk_flow_box_remove:
+ * @box: a #GtkFlowBox
+ * @widget: the child widget to remove
+ *
+ * Removes a child from @box.
+ */
+void
+gtk_flow_box_remove (GtkFlowBox *box,
+                     GtkWidget  *widget)
 {
-  GtkFlowBox *box = GTK_FLOW_BOX (container);
   GtkFlowBoxPrivate *priv = BOX_PRIV (box);
   gboolean was_visible;
   gboolean was_selected;
   GtkFlowBoxChild *child;
 
+  g_return_if_fail (GTK_IS_FLOW_BOX (box));
+  g_return_if_fail (GTK_IS_WIDGET (widget));
+  g_return_if_fail (gtk_widget_get_parent (widget) == GTK_WIDGET (box) ||
+                    gtk_widget_get_parent (gtk_widget_get_parent (widget)) == GTK_WIDGET (box));
+
   if (GTK_IS_FLOW_BOX_CHILD (widget))
     child = GTK_FLOW_BOX_CHILD (widget);
   else
index 9b1729490d4307d75279b0f0117c30eeff7595ba..75d9498955cc92ea688846970308e36b42e2c2df 100644 (file)
@@ -147,6 +147,9 @@ void                  gtk_flow_box_insert                       (GtkFlowBox
                                                                  GtkWidget         *widget,
                                                                  gint               position);
 GDK_AVAILABLE_IN_ALL
+void                  gtk_flow_box_remove                       (GtkFlowBox        *box,
+                                                                 GtkWidget         *widget);
+GDK_AVAILABLE_IN_ALL
 GtkFlowBoxChild      *gtk_flow_box_get_child_at_index           (GtkFlowBox        *box,
                                                                  gint               idx);